<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>Utility to create lookup table of percentiles 0 to 100 and mean for each indicator by State or USA total — pctiles_lookup_create • EJAM</title><!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png"><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png"><link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png"><link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png"><link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png"><script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link href="../deps/bootstrap-5.3.1/bootstrap.min.css" rel="stylesheet"><script src="../deps/bootstrap-5.3.1/bootstrap.bundle.min.js"></script><link href="../deps/font-awesome-6.4.2/css/all.min.css" rel="stylesheet"><link href="../deps/font-awesome-6.4.2/css/v4-shims.min.css" rel="stylesheet"><script src="../deps/headroom-0.11.0/headroom.min.js"></script><script src="../deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="../deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="../deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="../deps/search-1.0.0/fuse.min.js"></script><script src="../deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="../pkgdown.js"></script><meta property="og:title" content="Utility to create lookup table of percentiles 0 to 100 and mean for each indicator by State or USA total — pctiles_lookup_create"><meta name="description" content="Utility to create lookup table of percentiles 0 to 100 and mean for each indicator by State or USA total"><meta property="og:description" content="Utility to create lookup table of percentiles 0 to 100 and mean for each indicator by State or USA total"><meta property="og:image" content="https://usepa.github.io/EJAM/logo.svg"></head><body>
    <a href="#main" class="visually-hidden-focusable">Skip to contents</a>


    <nav class="navbar navbar-expand-lg fixed-top bg-light" data-bs-theme="light" aria-label="Site navigation"><div class="container">

    <a class="navbar-brand me-2" href="../index.html">EJAM</a>

    <small class="nav-text text-warning me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Released version">2.32.0</small>


    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>

    <div id="navbar" class="collapse navbar-collapse ms-3">
      <ul class="navbar-nav me-auto"><li class="active nav-item"><a class="nav-link" href="../reference/index.html">Reference</a></li>
<li class="nav-item dropdown">
  <button class="nav-link dropdown-toggle" type="button" id="dropdown-articles" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true">Articles</button>
  <ul class="dropdown-menu" aria-labelledby="dropdown-articles"><li><hr class="dropdown-divider"></li>
    <li><h6 class="dropdown-header" data-toc-skip>Overview for EJAM Users</h6></li>
    <li><a class="dropdown-item" href="../articles/0_whatis.html">What is EJAM</a></li>
    <li><a class="dropdown-item" href="../articles/0_webapp.html">Using EJAM</a></li>
    <li><hr class="dropdown-divider"></li>
    <li><h6 class="dropdown-header" data-toc-skip>For analysts using R</h6></li>
    <li><a class="dropdown-item" href="../articles/1_installing.html">Installing the EJAM R package</a></li>
    <li><a class="dropdown-item" href="../articles/2_quickstart.html">Quick Start Guide</a></li>
    <li><a class="dropdown-item" href="../articles/3_analyzing.html">Basics of Using EJAM for Analysis in RStudio</a></li>
    <li><a class="dropdown-item" href="../articles/4_advanced.html">Advanced Features</a></li>
  </ul></li>
<li class="nav-item"><a class="nav-link" href="../news/index.html">Changelog</a></li>
      </ul><ul class="navbar-nav"><li class="nav-item"><form class="form-inline" role="search">
 <input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="../search.json"></form></li>
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/USEPA/EJAM/" aria-label="GitHub"><span class="fa fab fa-github fa-lg"></span></a></li>
      </ul></div>


  </div>
</nav><div class="container template-reference-topic">
<div class="row">
  <main id="main" class="col-md-9"><div class="page-header">
      <img src="../logo.svg" class="logo" alt=""><h1>Utility to create lookup table of percentiles 0 to 100 and mean for each indicator by State or USA total</h1>
      <small class="dont-index">Source: <a href="https://github.com/USEPA/EJAM/blob/HEAD/R/utils_pctiles_lookup_create.R" class="external-link"><code>R/utils_pctiles_lookup_create.R</code></a></small>
      <div class="d-none name"><code>pctiles_lookup_create.Rd</code></div>
    </div>

    <div class="ref-description section level2">
    <p>Utility to create lookup table of percentiles 0 to 100 and mean for each indicator by State or USA total</p>
    </div>

    <div class="section level2">
    <h2 id="ref-usage">Usage<a class="anchor" aria-label="anchor" href="#ref-usage"></a></h2>
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">pctiles_lookup_create</span><span class="op">(</span></span>
<span>  <span class="va">x</span>,</span>
<span>  zone.vector <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  zoneOverallName <span class="op">=</span> <span class="st">"USA"</span>,</span>
<span>  wts <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  usecollapse <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span>  type <span class="op">=</span> <span class="fl">7</span></span>
<span><span class="op">)</span></span></code></pre></div>
    </div>

    <div class="section level2">
    <h2 id="arguments">Arguments<a class="anchor" aria-label="anchor" href="#arguments"></a></h2>


<dl><dt id="arg-x">x<a class="anchor" aria-label="anchor" href="#arg-x"></a></dt>
<dd><p>data.frame with numeric data. Each column will be examined to calculate
mean,   and percentiles, for each zone</p></dd>


<dt id="arg-zone-vector">zone.vector<a class="anchor" aria-label="anchor" href="#arg-zone-vector"></a></dt>
<dd><p>optional names of states or regions, for example. same length as wts, or rows in mydf</p></dd>


<dt id="arg-zoneoverallname">zoneOverallName<a class="anchor" aria-label="anchor" href="#arg-zoneoverallname"></a></dt>
<dd><p>optional. Default is USA.</p></dd>


<dt id="arg-wts">wts<a class="anchor" aria-label="anchor" href="#arg-wts"></a></dt>
<dd><p>leave as default since weighted percentiles of blockgroups are not used for EJScreen percentiles anymore</p></dd>


<dt id="arg-usecollapse">usecollapse<a class="anchor" aria-label="anchor" href="#arg-usecollapse"></a></dt>
<dd><p>logical, whether to use collapse::fquantile()
instead of Hmisc package wtd.quantile and stats pkg quantile,
to test before fully removing dependency on Hmisc and also speed it up.</p></dd>


<dt id="arg-type">type<a class="anchor" aria-label="anchor" href="#arg-type"></a></dt>
<dd><p>DO NOT CHANGE - moot for EJScreen/EJAM - SEE SOURCE CODE - Hmisc pkg wtd.quantile type "1/n" was used here in the past and possibly by EJScreen
(EJScreen no longer uses weighted percentiles so this is moot for the weighted case)
but collapse pkg fquantile is now used here to avoid Hmisc dependency
and fquantile type 4 seems to be the same as Hmisc type "1/n" but that has not been confirmed,
and this function by default uses fquantile type 1, the inverse of the ECDF however,
which seems simpler than using type 4 which does linear interpolation between points of the ECDF!
***  NEED TO CONFIRM IF THAT CREATES A TABLE DIFFERENT THAN WHAT EJSCREEN WOULD CREATE</p></dd>

</dl></div>
    <div class="section level2">
    <h2 id="details">Details<a class="anchor" aria-label="anchor" href="#details"></a></h2>
    <p>EJScreen assigns each indicator in each block group a percentile value via python script, using
<a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.percentileofscore.html" class="external-link">https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.percentileofscore.html</a></p>
<div class="sourceCode"><pre><code>
  The way the python function is used as of 2023 is that percentileofscore is 80<!-- % if -->
  80<!-- % of all indicator values (statewide or nationwide, depending on the type being calculated) -->
  are less than (NOT equal to) the indicator value
  in the specified block group (since kind="strict").
  The percentile recorded in the EJScreen dataset is the floor of that,
  meaning if the 81.9<!-- % of values are less than x, the percentile is reported as 81. -->
  The EJScreen python script used to create percentile lookup tables is in a file
  called cal_statepctile_0222.py and the key lines of code and functions it uses are

  pctile = math.floor(stats.percentileofscore(barray, indicatorscore, kind="strict"))

  binvalue = getBinvalue(pctile)

  and

  def getBinvalue(pct):

if pct is None:
  return 0
else:
    if pct &gt;= 95:
    return 11
elif pct &gt;= 90 and pct &lt; 95:
  return 10
elif pct &gt;= 80 and pct &lt; 90:
  return 9
elif pct &gt;= 70 and pct &lt; 80:
  return 8
elif pct &gt;= 60 and pct &lt; 70:
  return 7
elif pct &gt;= 50 and pct &lt; 60:
  return 6
elif pct &gt;= 40 and pct &lt; 50:
  return 5
elif pct &gt;= 30 and pct &lt; 40:
  return 4
elif pct &gt;= 20 and pct &lt; 30:
  return 3
elif pct &gt;= 10 and pct &lt; 20:
  return 2
else:
  return 1
  </code></pre></div>

    </div>

  </main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><h2>On this page</h2>
    </nav></aside></div>


    <footer><div class="pkgdown-footer-left">
  <p>US EPA 2024</p>
</div>

<div class="pkgdown-footer-right">
  <p>EJAM Version 2.32.0</p>
</div>

    </footer></div>





  </body></html>

